#pragma once

#include <string>


class IMesh;
class AnimatedImage;
class IScenery;
class IRenderableObject;

class IMeshStorage
{
public:
   virtual ~IMeshStorage(void) {}

   virtual IScenery& getTerrainScenery(const std::string& trackName) = 0;

   virtual IRenderableObject& getTerrainRenderable(const std::string& trackName) = 0;

   virtual IMesh& getLaserMesh() = 0;

   virtual IMesh& getCarMesh() = 0;

   virtual IMesh& getPoleMesh() = 0;

   virtual AnimatedImage& getPolePositionLight() = 0;

   virtual AnimatedImage& getIntroScreen() = 0;

   virtual AnimatedImage& getMainMenuScreen() = 0;

   virtual AnimatedImage& getSelectionHighlight() = 0;

   virtual AnimatedImage& getVictoryScreen() = 0;

   virtual AnimatedImage& getDefeatScreen() = 0;
};
